package model;

import persistencia.AdmPersistenciaCasilla;
import model.view.CasillaView;

public abstract class Casilla {
	
	private static Integer proximoNumero;
	private String nombre;
	
	static {
		proximoNumero=AdmPersistenciaCasilla.getInstancia().getCantidadCasillas();
	}
	public Casilla(Integer codigo,String nombre) {
		super();
		this.codigo = codigo;
		this.nombre=nombre;
	}
	
	public Casilla(Integer codigo) {
		super();
		this.codigo = codigo;
	}

	private Integer codigo;

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	
	protected static Integer getProximoNumero(){
		return ++proximoNumero;
	}
	
	public abstract CasillaView getView();

	@Override
	public String toString() {
		
		return codigo.toString();
	}

	public static boolean formatearCasillas() {
		return AdmPersistenciaCasilla.getInstancia().eliminarCasillas();
		
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Override
	public boolean equals(Object arg0) {
		Casilla casilla= (Casilla)arg0;
		return casilla.getCodigo().equals(this.getCodigo());
	}

	@Override
	public int hashCode() {
		return this.codigo;
	}
	
	
	
}
